package com.wwdx.model.dto;

import com.wwdx.model.WwdxBookChapterModel;
import com.wwdx.model.WwdxCopywriterModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @author liguoliang
 */
@Data
public class BookBusinessDTO implements Serializable{

    /**
     * 书籍ID
     */
    private Long bookid;
    /**
     * 书籍名称
     */
    private String bookname;

    /**
     * 书籍列表
     */
    @Data
    @EqualsAndHashCode(callSuper = true)
    @ToString(callSuper = true)
    public static class BookListDTO extends BookBusinessDTO implements Serializable{

        /**
         * 书籍图片
         */
        private String bookimg;
        /**
         * 书籍现有价格
         */
        private BigDecimal bookprice;
        /**
         * 一句话介绍
         */
        private String bookrecommend;
        /**
         * 音频时长
         */
        private String videoduration;
        /**
         * 是否购买
         */
        private Integer isorder;
    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    @ToString(callSuper = true)
    public static class BookDetailDTO extends BookListDTO implements Serializable{

        /**
         * 书籍作者
         */
        private String bookauthor;
        /**
         * 书籍出版社
         */
        private String bookpublish;
        /**
         * 书籍字数描述
         */
        private String bookwrodnumber;
        /**
         * 内容
         */
        private String content;
        /**
         * 推荐语
         */
        private String contentsummary;
        /**
         * 思维导图小图
         */
        private String mappingSmallImg;
        /**
         * 思维导图
         */
        private String mappingImg;
        /**
         * 横幅
         */
        private String banner;
        /**
         * 小课详情图片
         */
        private String smallLessonImg;
        /**
         * 是否添加书架
         */
        private Integer isbookshelf;
        /**
         * 撰稿人信息
         */
        private WwdxCopywriterModel copywriteInfo;
        /**
         * 音频转述师信息
         */
        private WwdxCopywriterModel videoauthorInfo;
        /**
         * 推荐购买
         */
        private List<BookListDTO> recommendList;
        /**
         * 书籍下的章节列表
         */
        private List<WwdxBookChapterModel> chapterList;
    }

    /**
     * 分销商书籍列表
     */
    @Data
    public static class MerchantBookListDTO implements Serializable,Cloneable{
        /**
         * 书籍图片
         */
        private String bookimg;
        /**
         * 书籍名称
         */
        private String bookname;
        /**
         * 音频
         */
        private String audioAddress;

        @Override
        public Object clone() {
            try {
                return super.clone();
            } catch (CloneNotSupportedException e) {
                e.printStackTrace();
            }
            return null;
        }
    }
}